package com.xyht.sca_s.student_manage_system.modules.teachAndStaffCheckInApplication.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.teachAndStaffCheckInApplication.entity.SmsTeachAdministrativeStaffCheckInApplication;
import com.xyht.sca_s.student_manage_system.modules.teachAndStaffCheckInApplication.entity.vo.SmsTeachAdministrativeStaffCancelVO;
import com.xyht.sca_s.student_manage_system.modules.teachAndStaffCheckInApplication.entity.vo.SmsTeachAdministrativeStaffCheckInApplicationVO;
import com.xyht.sca_s.student_manage_system.modules.teachAndStaffCheckInApplication.entity.vo.SmsTeachApplicationExportVO;
import com.xyht.sca_s.student_manage_system.modules.teachAndStaffCheckInApplication.entity.vo.SmsTeachStaffAllowVO;

import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.Future;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author XYHT
 * @since 2023-05-05
 */
public interface SmsTeachAdministrativeStaffCheckInApplicationService extends IService<SmsTeachAdministrativeStaffCheckInApplication> {

    ResponseResult smsTeachAdministrativeStaffCheckInApplicationAdd(SmsTeachAdministrativeStaffCheckInApplicationVO smsTeachAdministrativeStaffCheckInApplication, String user_id);

    ResponseResult selectSmsTeachAdministrativeStaffCheckInApplication(Integer application_state, Integer pageSize, Integer pageNum, String bg_date, String end_date, String user_id);

    ResponseResult selectSmsTeachAdministrativeStaffCheckInApplicationById(String id, Integer pageSize, Integer pageNum);

    ResponseResult selectSmsTeachAdministrativeStaffCheckInApplicationByAllowUser(String teachStaffName,String user_id, Integer pageSize, Integer pageNum, String bg_date, String end_date);

    ResponseResult selectByIdAllowUser(String id, Integer pageSize, Integer pageNum);

    ResponseResult smsTeachAdministrativeStaffCheckInApplicationByAllow(SmsTeachStaffAllowVO smsTeachStaffAllowVO, String allow_person_id);

    ResponseResult smsTeachAdministrativeStaffCheckInApplicationByAllowList(String user_id, Integer application_type, Integer pageNum, Integer pageSize,String search_str);

    ResponseResult getTeachAdministrativeStaffCheckInApplicationDetail(String application_id, String user_id);

    ResponseResult cancelSmsTeachAdministrativeStaffCheckInApplication(SmsTeachAdministrativeStaffCancelVO cancelVO, String user_id);

    ResponseResult getTeachAdministrativeStaffCheckInApplicationProcessList();

    Future<ResponseResult> tableDownload(String apply_id, HttpServletResponse response);

    ResponseResult selectAllApply(String apply_unit, Integer pageSize, Integer pageNum);

    Future<ResponseResult> exportTeachApplication(SmsTeachApplicationExportVO exportVO, HttpServletResponse response);
}
